//
//  RestV1.h
//
//  Created by Haider Sabri on Monday6/8/09.
//  Copyright 2009 MySpace, Inc. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "SecurityContext.h"
#import "OffsiteContext.h"


@interface RestV1 : NSObject<OAResponseDelegate> {
	SecurityContext *context;
	NSData *responseData;
}

@property (nonatomic, assign) SecurityContext* context;
@property (nonatomic, assign) NSData* responseData;

+ (RestV1*) apiWithContext:(SecurityContext*) context;
- (NSData*) getCurrentUser;
- (NSData*) getUser:(NSInteger) userId;
- (NSData*) getMood:(NSInteger) userId;
- (NSData*) getMoodsList: (NSInteger) userId;
- (void) setMoodStatus:(NSInteger)userId moodId:(NSInteger)moodId moodName:(NSString*)moodName moodPictureName:(NSString*)moodPictureName status:(NSString*) status;
- (NSData*) getAlbums:(NSInteger)userId;
- (NSData*) getAlbums:(NSInteger)userId page:(NSInteger)page pageSize:(NSInteger)pageSize;
- (NSData*) getAlbum: (NSInteger) userId albumId: (NSInteger) albumId;
- (NSData*) getFriends: (NSInteger) userId;
- (NSData*) getFriends: (NSInteger) userId page:(NSInteger) page pageSize:(NSInteger) pageSize;
//Need to add another call for getFriends to support FriendList and FriendShow parameters
- (NSData*) getFriendStatus: (NSInteger) userId;
- (NSData*) getFriendship: (NSInteger) userId friendIds: (NSArray*) friendIds;
- (NSData*) getPhotos: (NSInteger) userId;
- (NSData*) getPhotos: (NSInteger) userId page:(NSInteger) page pageSize:(NSInteger) pageSize;
- (NSData*) getPhoto: (NSInteger) userId photoId: (NSInteger) photoId;
- (NSData*) getFullProfile: (NSInteger) userId;
- (NSData*) getBasicProfile: (NSInteger) userId;
- (NSData*) getExtendedProfile: (NSInteger) userId;
- (NSData*) getStatus: (NSInteger) userId;
- (NSData*) getVideos: (NSInteger) userId;
- (NSData*) getVideos: (NSInteger) userId page:(NSInteger) page pageSize:(NSInteger) pageSize;
- (NSData*) getVideo: (NSInteger) userId videoId: (NSInteger) videoId;
- (NSData*) getActivities: (NSInteger) userId;
- (NSData*) getFriendActivities: (NSInteger) userId;
- (NSData*) getGlobalAppData;
- (NSData*) getGlobalAppData: (NSArray*) keys;
- (void) addGlobalAppData: (NSDictionary*) globalAppDataPairs;
- (void) deleteGlobalAppData: (NSArray*) keys;
- (void) addUserAppData: (NSInteger) userId userAppDataPairs: (NSDictionary*) userAppDataPairs;
- (void) deleteUserAppData: (NSInteger) userId keys: (NSArray*) keys;
- (NSData*) getUserAppData: (NSInteger) userId;
- (NSData*) getUserAppData: (NSInteger) userId keys: (NSArray*) keys;
- (NSData*) getFriendAppData: (NSInteger) userId;
- (NSData*) getFriendAppData: (NSInteger) userId keys: (NSArray*) keys;
- (NSData*) getIndicators: (NSInteger) userId;
- (void) sendNotification: (NSInteger) appId recipients: (NSArray*) recipients content: (NSString*) content button0Surface:(NSString*) button0Surface button0Label:(NSString*) button0Label button1Surface:(NSString*) button1Surface button1Label:(NSString*) button1Label mediaItem: (NSString*) mediaItem;

@end
